Add option to lock orientation state

This new option will control if the screen orientation
lock option is displayed or not. If set, the orientation lock
is forced and the unlock option is hidden.
This commit is contained in:
Branden Archer committed 2018-10-06 15:27:36 -07:00
1 parent 4de952ba2d
commit 10e720de91
5 files changed
+56

No files matched your search

@@ -200,6 +200,12 @@ public class LoyaltyCardViewActivity extends AppCompatActivity
{
getMenuInflater().inflate(R.menu.card_view_menu, menu);
if(settings.getLockBarcodeScreenOrientation())
{
MenuItem item = menu.findItem(R.id.action_lock_unlock);
setOrientatonLock(item, true);
item.setVisible(false);
}
return super.onCreateOptionsMenu(menu);
}
@@ -68,4 +68,9 @@ public class Settings
{
return getBoolean(R.string.settings_key_display_barcode_max_brightness, true);
}
public boolean getLockBarcodeScreenOrientation()
{
return getBoolean(R.string.settings_key_lock_barcode_orientation, false);
}
}
+2
View File
@@ -121,4 +121,6 @@
<string name="settings_key_card_note_font_size" translatable="false">pref_card_note_font_size_sp</string>
<string name="settings_display_barcode_max_brightness">Brighten barcode view</string>
<string name="settings_key_display_barcode_max_brightness" translatable="false">pref_display_card_max_brightness</string>
<string name="settings_lock_barcode_orientation">Lock barcode orientation</string>
<string name="settings_key_lock_barcode_orientation" translatable="false">pref_lock_barcode_orientation</string>
</resources>
+5
View File
@@ -40,11 +40,16 @@
android:defaultValue="@integer/settings_card_note_font_size_sp"
app:vnt_maxValue="@integer/settings_card_note_max_font_size_sp"
app:vnt_minValue="@integer/settings_card_note_min_font_size_sp" />
<CheckBoxPreference
android:defaultValue="true"
android:key="@string/settings_key_display_barcode_max_brightness"
android:title="@string/settings_display_barcode_max_brightness"/>
<CheckBoxPreference
android:defaultValue="false"
android:key="@string/settings_key_lock_barcode_orientation"
android:title="@string/settings_lock_barcode_orientation"/>
</PreferenceCategory>
</PreferenceScreen>
@@ -11,6 +11,7 @@ import android.os.Bundle;
import android.preference.PreferenceManager;
import android.support.v4.widget.TextViewCompat;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
@@ -566,4 +567,41 @@ public class LoyaltyCardViewActivityTest
shadowOf(activity).clickMenuItem(android.R.id.home);
assertEquals(true, activity.isFinishing());
}
@Test
public void checkScreenOrientationLockSetting()
{
for(boolean locked : new boolean[] {false, true})
{
ActivityController activityController = createActivityWithLoyaltyCard(false);
Activity activity = (Activity)activityController.get();
DBHelper db = new DBHelper(activity);
db.insertLoyaltyCard("store", "note", BARCODE_DATA, BARCODE_TYPE, Color.BLACK, Color.WHITE);
SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(activity);
settings.edit()
.putBoolean(activity.getResources().getString(R.string.settings_key_lock_barcode_orientation), locked)
.apply();
activityController.start();
activityController.resume();
activityController.visible();
assertEquals(false, activity.isFinishing());
MenuItem item = shadowOf(activity).getOptionsMenu().findItem(R.id.action_lock_unlock);
if(locked)
{
assertEquals(item.isVisible(), false);
}
else
{
assertEquals(item.isVisible(), true);
String title = item.getTitle().toString();
assertEquals(title, activity.getString(R.string.lockScreen));
}
}
}
}