summaryrefslogtreecommitdiffstats
path: root/src/com/android
diff options
context:
space:
mode:
authorYvonne Wong <ywong@cyngn.com>2015-12-08 16:54:40 -0800
committerTom Powell <zifnab@zifnab06.net>2017-03-26 15:52:42 -0700
commitbdd001df8de0e4b2134e7ba6626053549141d566 (patch)
treeb680b07d7c33211f78f4c5e64cf19876decbbe7b /src/com/android
parentc0f0cb20999e5f1d5cd0d971e7972dc24c168c7f (diff)
downloadandroid_packages_apps_Trebuchet-bdd001df8de0e4b2134e7ba6626053549141d566.tar.gz
android_packages_apps_Trebuchet-bdd001df8de0e4b2134e7ba6626053549141d566.tar.bz2
android_packages_apps_Trebuchet-bdd001df8de0e4b2134e7ba6626053549141d566.zip
Reimplement CM Settings Overview Panel Part 5
- Enable default screen button - Make UI changes to settings panel - Add a broadcast receiver for hide/unhide search bar setting Change-Id: I849dd412231795b894e7af7ee575e60feb618c70
Diffstat (limited to 'src/com/android')
-rw-r--r--src/com/android/launcher3/Launcher.java46
-rw-r--r--src/com/android/launcher3/Workspace.java19
-rw-r--r--src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java75
3 files changed, 105 insertions, 35 deletions
diff --git a/src/com/android/launcher3/Launcher.java b/src/com/android/launcher3/Launcher.java
index 3198c0ff5..729b9949f 100644
--- a/src/com/android/launcher3/Launcher.java
+++ b/src/com/android/launcher3/Launcher.java
@@ -108,6 +108,7 @@ import com.android.launcher3.compat.LauncherActivityInfoCompat;
import com.android.launcher3.compat.LauncherAppsCompat;
import com.android.launcher3.compat.UserHandleCompat;
import com.android.launcher3.compat.UserManagerCompat;
+import com.android.launcher3.list.SettingsPinnedHeaderAdapter;
import com.android.launcher3.model.WidgetsModel;
import com.android.launcher3.settings.SettingsProvider;
import com.android.launcher3.util.ComponentKey;
@@ -369,6 +370,8 @@ public class Launcher extends Activity
// the press state and keep this reference to reset the press state when we return to launcher.
private BubbleTextView mWaitingForResume;
+ private long mDefaultScreenId;
+
public Animator.AnimatorListener mAnimatorListener = new Animator.AnimatorListener() {
@Override
public void onAnimationStart(Animator arg0) {}
@@ -382,7 +385,7 @@ public class Launcher extends Activity
public void onAnimationCancel(Animator arg0) {}
};
- Runnable mUpdateDynamicGridRunnable = new Runnable() {
+ Runnable mReloadLauncherRunnable = new Runnable() {
@Override
public void run() {
reloadLauncher(mWorkspace.getRestorePage(), true, false);
@@ -393,7 +396,19 @@ public class Launcher extends Activity
@Override
public void onReceive(Context context, Intent intent) {
// Update the workspace
- if (waitUntilResume(mUpdateDynamicGridRunnable, true)) {
+ if (waitUntilResume(mReloadLauncherRunnable, true)) {
+ return;
+ }
+
+ reloadLauncher(mWorkspace.getRestorePage(), true, false);
+ }
+ };
+
+ private BroadcastReceiver searchBarVisibilityChangedReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ // Update the workspace
+ if (waitUntilResume(mReloadLauncherRunnable, true)) {
return;
}
@@ -572,6 +587,10 @@ public class Launcher extends Activity
cyanogenmod.content.Intent.ACTION_PROTECTED_CHANGED);
registerReceiver(protectedAppsChangedReceiver, protectedAppsFilter,
cyanogenmod.platform.Manifest.permission.PROTECTED_APP, null);
+
+ IntentFilter searchBarVisibilityFilter = new IntentFilter(
+ SettingsPinnedHeaderAdapter.ACTION_SEARCH_BAR_VISIBILITY_CHANGED);
+ registerReceiver(searchBarVisibilityChangedReceiver, searchBarVisibilityFilter);
}
@Override
@@ -1788,6 +1807,8 @@ public class Launcher extends Activity
mHideIconLabels = SettingsProvider.getBoolean(this,
SettingsProvider.SETTINGS_UI_HOMESCREEN_HIDE_ICON_LABELS,
R.bool.preferences_interface_homescreen_hide_icon_labels_default);
+ mDefaultScreenId = SettingsProvider.getLongCustomDefault(this,
+ SettingsProvider.SETTINGS_UI_HOMESCREEN_DEFAULT_SCREEN_ID, 1);
mModel = app.setLauncher(this);
mIconCache = app.getIconCache();
@@ -1829,7 +1850,6 @@ public class Launcher extends Activity
mWorkspace.updateCustomContentVisibility();
mSearchDropTargetBar.setupQsb(this);
- mSearchDropTargetBar.setVisibility(View.INVISIBLE);
if (reloadAppDrawer) {
reloadAppDrawer();
@@ -2313,6 +2333,7 @@ public class Launcher extends Activity
}
unregisterReceiver(protectedAppsChangedReceiver);
+ unregisterReceiver(searchBarVisibilityChangedReceiver);
}
public DragController getDragController() {
@@ -3097,7 +3118,24 @@ public class Launcher extends Activity
protected void onClickDefaultScreenButton(View v) {
if (LOGD) Log.d(TAG, "onClickDefaultScreenButton");
- // TODO
+
+ if (!mWorkspace.isInOverviewMode()) return;
+
+ mDefaultScreenId = mWorkspace.getScreenIdForPageIndex(mWorkspace.getPageNearestToCenterOfScreen());
+ updateDefaultScreenButton();
+ SettingsProvider.get(this).edit()
+ .putLong(SettingsProvider.SETTINGS_UI_HOMESCREEN_DEFAULT_SCREEN_ID,
+ mDefaultScreenId)
+ .commit();
+ }
+
+ protected void updateDefaultScreenButton() {
+ if (mOverviewPanel != null) {
+ View defaultPageButton = mOverviewPanel.findViewById(R.id.default_screen_button);
+ defaultPageButton.setActivated(
+ mWorkspace.getScreenIdForPageIndex(mWorkspace.getPageNearestToCenterOfScreen())
+ == mDefaultScreenId);
+ }
}
public View.OnTouchListener getHapticFeedbackTouchListener() {
diff --git a/src/com/android/launcher3/Workspace.java b/src/com/android/launcher3/Workspace.java
index 59c870a8d..09a0a9889 100644
--- a/src/com/android/launcher3/Workspace.java
+++ b/src/com/android/launcher3/Workspace.java
@@ -574,6 +574,11 @@ public class Workspace extends PagedView
mScreenOrder.add(insertIndex, screenId);
addView(newScreen, insertIndex);
+ if (getDefaultScreenId() == screenId) {
+ int defaultPage = getPageIndexForScreenId(screenId);
+ moveToScreen(defaultPage, false);
+ }
+
LauncherAccessibilityDelegate delegate =
LauncherAppState.getInstance().getAccessibilityDelegate();
if (delegate != null && delegate.isInAccessibleDrag()) {
@@ -1546,6 +1551,10 @@ public class Workspace extends PagedView
super.computeScroll();
if (mScrollWallpaper) mWallpaperOffset.syncWithScroll();
+
+ if (isInOverviewMode() && !isReordering(true)) {
+ mLauncher.updateDefaultScreenButton();
+ }
}
@Override
@@ -1985,6 +1994,9 @@ public class Workspace extends PagedView
// Re-enable auto layout transitions for page deletion.
enableLayoutTransitions();
+
+ // Show the default screen button
+ mLauncher.updateDefaultScreenButton();
}
public boolean isInOverviewMode() {
@@ -4436,7 +4448,7 @@ public class Workspace extends PagedView
}
void moveToDefaultScreen(boolean animate) {
- moveToScreen(mDefaultPage, animate);
+ moveToScreen(getPageIndexForScreenId(getDefaultScreenId()), animate);
}
void moveToCustomContentScreen(boolean animate) {
@@ -4521,6 +4533,11 @@ public class Workspace extends PagedView
}
}
+ private long getDefaultScreenId() {
+ return SettingsProvider.getLongCustomDefault(mLauncher,
+ SettingsProvider.SETTINGS_UI_HOMESCREEN_DEFAULT_SCREEN_ID, 1);
+ }
+
/**
* Used as a workaround to ensure that the AppWidgetService receives the
* PACKAGE_ADDED broadcast before updating widgets.
diff --git a/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java b/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java
index 034fd4903..505b6b4ed 100644
--- a/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java
+++ b/src/com/android/launcher3/list/SettingsPinnedHeaderAdapter.java
@@ -12,6 +12,7 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
+import android.widget.Switch;
import android.widget.TextView;
import android.widget.Toast;
import com.android.launcher3.InvariantDeviceProfile;
@@ -22,6 +23,9 @@ import com.android.launcher3.Utilities;
import com.android.launcher3.settings.SettingsProvider;
public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
+ public static final String ACTION_SEARCH_BAR_VISIBILITY_CHANGED =
+ "cyanogenmod.intent.action.SEARCH_BAR_VISIBILITY_CHANGED";
+
private Launcher mLauncher;
private Context mContext;
@@ -59,9 +63,6 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
protected void bindHeaderView(View view, int partition, Cursor cursor) {
TextView textView = (TextView) view.findViewById(R.id.item_name);
textView.setText(mHeaders[partition]);
- textView.setTypeface(textView.getTypeface(), Typeface.BOLD);
-
- textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);
}
@Override
@@ -73,15 +74,19 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
@Override
protected void bindView(View v, int partition, Cursor cursor, int position) {
- TextView text = (TextView)v.findViewById(R.id.item_name);
+ TextView nameView = (TextView)v.findViewById(R.id.item_name);
+ TextView stateView = (TextView)v.findViewById(R.id.item_state);
+ Switch settingSwitch = (Switch)v.findViewById(R.id.setting_switch);
+ settingSwitch.setClickable(false);
+
// RTL
Configuration config = mLauncher.getResources().getConfiguration();
if (config.getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
- text.setGravity(Gravity.RIGHT);
+ nameView.setGravity(Gravity.RIGHT);
}
String title = cursor.getString(1);
- text.setText(title);
+ nameView.setText(title);
v.setTag(new SettingsPosition(partition, position));
@@ -97,9 +102,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
current = SettingsProvider.getBoolean(mContext,
SettingsProvider.SETTINGS_UI_HOMESCREEN_SEARCH,
R.bool.preferences_interface_homescreen_search_default);
- state = current ? res.getString(R.string.setting_state_on)
- : res.getString(R.string.setting_state_off);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setSettingSwitch(stateView, settingSwitch, current);
break;
case 1:
current = SettingsProvider.getBoolean(mContext,
@@ -107,21 +110,19 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.bool.preferences_interface_homescreen_hide_icon_labels_default);
state = current ? res.getString(R.string.icon_labels_hide)
: res.getString(R.string.icon_labels_show);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setStateText(stateView, settingSwitch, state);
break;
case 2:
current = SettingsProvider.getBoolean(mContext,
SettingsProvider.SETTINGS_UI_HOMESCREEN_SCROLLING_WALLPAPER_SCROLL,
R.bool.preferences_interface_homescreen_scrolling_wallpaper_scroll_default);
- state = current ? res.getString(R.string.setting_state_on)
- : res.getString(R.string.setting_state_off);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setSettingSwitch(stateView, settingSwitch, current);
break;
case 3:
updateDynamicGridSizeSettingsItem(v);
break;
default:
- ((TextView) v.findViewById(R.id.item_state)).setText("");
+ hideStates(stateView, settingSwitch);
}
break;
case OverviewSettingsPanel.DRAWER_SETTINGS_POSITION:
@@ -132,7 +133,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.bool.preferences_interface_drawer_hide_icon_labels_default);
state = current ? res.getString(R.string.icon_labels_hide)
: res.getString(R.string.icon_labels_show);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setStateText(stateView, settingSwitch, state);
break;
case 1:
current = SettingsProvider.getBoolean(mContext,
@@ -140,7 +141,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.bool.preferences_interface_drawer_compact_default);
state = current ? res.getString(R.string.app_drawer_style_compact)
: res.getString(R.string.app_drawer_style_sections);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setStateText(stateView, settingSwitch, state);
break;
case 2:
current = SettingsProvider.getBoolean(mContext,
@@ -148,7 +149,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.bool.preferences_interface_drawer_dark_default);
state = current ? res.getString(R.string.app_drawer_color_dark)
: res.getString(R.string.app_drawer_color_light);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setStateText(stateView, settingSwitch, state);
break;
case 3:
current = SettingsProvider.getBoolean(mContext,
@@ -156,24 +157,22 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.bool.preferences_interface_use_horizontal_scrubber_default);
state = current ? res.getString(R.string.fast_scroller_type_horizontal)
: res.getString(R.string.fast_scroller_type_vertical);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setStateText(stateView, settingSwitch, state);
break;
default:
- ((TextView) v.findViewById(R.id.item_state)).setText("");
+ hideStates(stateView, settingSwitch);
}
break;
- default:
+ case OverviewSettingsPanel.APP_SETTINGS_POSITION:
switch (position) {
case 0:
current = SettingsProvider.getBoolean(mContext,
SettingsProvider.SETTINGS_UI_GENERAL_ICONS_LARGE,
R.bool.preferences_interface_general_icons_large_default);
- state = current ? res.getString(R.string.setting_state_on)
- : res.getString(R.string.setting_state_off);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ setSettingSwitch(stateView, settingSwitch, current);
break;
default:
- ((TextView) v.findViewById(R.id.item_state)).setText("");
+ hideStates(stateView, settingSwitch);
}
}
@@ -234,7 +233,6 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
switch (position) {
case 0:
updateSearchBarVisibility(v);
- mLauncher.reloadLauncher(false, false);
break;
case 1:
onIconLabelsBooleanChanged(v,
@@ -282,7 +280,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
break;
}
break;
- default:
+ case OverviewSettingsPanel.APP_SETTINGS_POSITION:
switch (position) {
case 0:
onSettingsBooleanChanged(v,
@@ -320,6 +318,9 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
onSettingsBooleanChanged(v,
SettingsProvider.SETTINGS_UI_HOMESCREEN_SEARCH,
R.bool.preferences_interface_homescreen_search_default);
+
+ Intent intent = new Intent(ACTION_SEARCH_BAR_VISIBILITY_CHANGED);
+ mContext.sendBroadcast(intent);
}
private void onSettingsBooleanChanged(View v, String key, int res) {
@@ -330,10 +331,7 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
SettingsProvider.putBoolean(mContext, key, !current);
SettingsProvider.putBoolean(mContext, SettingsProvider.SETTINGS_CHANGED, true);
- String state = current ? mLauncher.getResources().getString(
- R.string.setting_state_off) : mLauncher.getResources().getString(
- R.string.setting_state_on);
- ((TextView) v.findViewById(R.id.item_state)).setText(state);
+ ((Switch)v.findViewById(R.id.setting_switch)).setChecked(!current);
}
private void onIconLabelsBooleanChanged(View v, String key, int res) {
@@ -391,4 +389,21 @@ public class SettingsPinnedHeaderAdapter extends PinnedHeaderListAdapter {
R.string.fast_scroller_type_horizontal);
((TextView) v.findViewById(R.id.item_state)).setText(state);
}
+
+ private void setStateText(TextView stateView, Switch settingSwitch, String state) {
+ stateView.setText(state);
+ stateView.setVisibility(View.VISIBLE);
+ settingSwitch.setVisibility(View.INVISIBLE);
+ }
+
+ private void setSettingSwitch(TextView stateView, Switch settingSwitch, boolean isChecked) {
+ settingSwitch.setChecked(isChecked);
+ settingSwitch.setVisibility(View.VISIBLE);
+ stateView.setVisibility(View.INVISIBLE);
+ }
+
+ private void hideStates(TextView stateView, Switch settingSwitch) {
+ settingSwitch.setVisibility(View.INVISIBLE);
+ stateView.setVisibility(View.INVISIBLE);
+ }
} \ No newline at end of file