summaryrefslogtreecommitdiffstats
path: root/src/com
diff options
context:
space:
mode:
authorClark Scheff <clark@cyngn.com>2014-10-06 17:27:56 -0700
committerClark Scheff <clark@cyngn.com>2014-10-08 15:41:19 +0000
commitf0ffe395cbd7701dc5a97ed31533b96edde29a8a (patch)
treeb6abcea1b6fe8d657fcbd8cbe1337acc5c35b565 /src/com
parent192aa17eb9c94949be57891e95b3df29837b2070 (diff)
downloadpackages_apps_ThemeChooser-f0ffe395cbd7701dc5a97ed31533b96edde29a8a.tar.gz
packages_apps_ThemeChooser-f0ffe395cbd7701dc5a97ed31533b96edde29a8a.tar.bz2
packages_apps_ThemeChooser-f0ffe395cbd7701dc5a97ed31533b96edde29a8a.zip
Highlight selected component not applied component
This patch makes it so the currently selected component shown in the card is highlighted in the component selector. For the current theme this will initially be the applied components and for other themes this will be their own component selected until the user selects a different component. Change-Id: Ied851d425decdd04c5e8d38567f2b079807fb520
Diffstat (limited to 'src/com')
-rw-r--r--src/com/cyngn/theme/chooser/ChooserActivity.java6
-rw-r--r--src/com/cyngn/theme/chooser/ComponentSelector.java59
-rw-r--r--src/com/cyngn/theme/chooser/MyThemeFragment.java23
-rw-r--r--src/com/cyngn/theme/chooser/ThemeFragment.java3
4 files changed, 70 insertions, 21 deletions
diff --git a/src/com/cyngn/theme/chooser/ChooserActivity.java b/src/com/cyngn/theme/chooser/ChooserActivity.java
index 893803c..c581edd 100644
--- a/src/com/cyngn/theme/chooser/ChooserActivity.java
+++ b/src/com/cyngn/theme/chooser/ChooserActivity.java
@@ -398,6 +398,10 @@ public class ChooserActivity extends FragmentActivity
}
public void showComponentSelector(String component, View v) {
+ showComponentSelector(component, null, v);
+ }
+
+ public void showComponentSelector(String component, String selectedPkgName, View v) {
if (component != null) {
final Resources res = getResources();
int itemsPerPage = res.getInteger(R.integer.default_items_per_page);
@@ -414,7 +418,7 @@ public class ChooserActivity extends FragmentActivity
R.dimen.component_selection_cell_height_sounds);
}
if (mSaveApplyLayout.getVisibility() == View.VISIBLE) hideSaveApplyButton();
- mSelector.show(component, itemsPerPage, height);
+ mSelector.show(component, selectedPkgName, itemsPerPage, height);
// determine if we need to shift the cards up
int[] coordinates = new int[2];
diff --git a/src/com/cyngn/theme/chooser/ComponentSelector.java b/src/com/cyngn/theme/chooser/ComponentSelector.java
index d2c3e97..0663dba 100644
--- a/src/com/cyngn/theme/chooser/ComponentSelector.java
+++ b/src/com/cyngn/theme/chooser/ComponentSelector.java
@@ -17,7 +17,6 @@ import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.Settings;
import android.provider.ThemesContract;
-import android.provider.ThemesContract.MixnMatchColumns;
import android.provider.ThemesContract.PreviewColumns;
import android.provider.ThemesContract.ThemesColumns;
import android.support.v4.app.FragmentActivity;
@@ -88,6 +87,7 @@ public class ComponentSelector extends LinearLayout
private int mBatteryStyle;
private int mItemsPerPage;
private String mAppliedComponentPkgName;
+ private String mSelectedComponentPkgName;
// animations for bringing selector in and out of view
private Animation mAnimateIn;
@@ -171,25 +171,29 @@ public class ComponentSelector extends LinearLayout
}
public void setComponentType(String component) {
- // Find out which theme is currently applied for this component
- String selection = MixnMatchColumns.COL_KEY + "=?";
- String[] selectionArgs = {MixnMatchColumns.componentToMixNMatchKey(component)};
- Cursor c = mContext.getContentResolver().query(MixnMatchColumns.CONTENT_URI,
- null, selection, selectionArgs, null);
- if (c != null) {
- if (c.moveToFirst()) {
- mAppliedComponentPkgName = c.getString(
- c.getColumnIndex(MixnMatchColumns.COL_VALUE));
- }
- c.close();
- } else {
- mAppliedComponentPkgName = null;
- }
+ setComponentType(component, null);
+ }
+
+ public void setComponentType(String component, String selectedPkgName) {
+ mSelectedComponentPkgName = selectedPkgName;
if (mComponentType == null || !mComponentType.equals(component)) {
mContent.removeAllViews();
mComponentType = component;
((FragmentActivity) mContext).getSupportLoaderManager().restartLoader(
getLoaderIdFromComponent(component), null, this);
+ } else if (mComponentType != null) {
+ int count = mContent.getChildCount();
+ final Resources res = getResources();
+ for (int i = 0; i < count; i++) {
+ final View child = mContent.getChildAt(i);
+ final TextView tv = (TextView) child.findViewById(R.id.title);
+ final String pkgName = (String) child.getTag();
+ if (pkgName.equals(selectedPkgName)) {
+ tv.setTextColor(res.getColor(R.color.component_selection_current_text_color));
+ } else {
+ tv.setTextColor(res.getColor(android.R.color.white));
+ }
+ }
}
}
@@ -213,9 +217,13 @@ public class ComponentSelector extends LinearLayout
}
public void show(String componentType, int itemsPerPage, int height) {
+ show(componentType, null, itemsPerPage, height);
+ }
+
+ public void show(String componentType, String selectedPkgName, int itemsPerPage, int height) {
setNumItemsPerPage(itemsPerPage);
setHeight(height);
- setComponentType(componentType);
+ setComponentType(componentType, selectedPkgName);
show();
}
@@ -501,8 +509,7 @@ public class ComponentSelector extends LinearLayout
private View newFontView(Cursor cursor, ViewGroup parent, int position) {
cursor.moveToPosition(position);
- View v = mInflater.inflate(R.layout.font_component_selection_item, parent,
- false);
+ View v = mInflater.inflate(R.layout.font_component_selection_item, parent, false);
int pkgNameIndex = cursor.getColumnIndex(ThemesContract.ThemesColumns.PKG_NAME);
TextView preview = (TextView) v.findViewById(R.id.text_preview);
@@ -675,7 +682,7 @@ public class ComponentSelector extends LinearLayout
} else {
titleView.setText(cursor.getString(cursor.getColumnIndex(ThemesColumns.TITLE)));
}
- if (pkgName.equals(mAppliedComponentPkgName)) {
+ if (pkgName.equals(mSelectedComponentPkgName)) {
titleView.setTextColor(getResources().getColor(
R.color.component_selection_current_text_color));
}
@@ -688,6 +695,20 @@ public class ComponentSelector extends LinearLayout
if (DEBUG_SELECTOR) Toast.makeText(mContext, pkgName, Toast.LENGTH_SHORT).show();
if (mListener != null) {
mListener.onItemClicked(pkgName);
+ final int count = mContent.getChildCount();
+ final Resources res = getResources();
+ for (int i = 0; i < count; i++) {
+ final View child = mContent.getChildAt(i);
+ final TextView tv = (TextView) child.findViewById(R.id.title);
+ if (tv != null) {
+ if (child == v) {
+ tv.setTextColor(
+ res.getColor(R.color.component_selection_current_text_color));
+ } else {
+ tv.setTextColor(res.getColor(android.R.color.white));
+ }
+ }
+ }
}
}
};
diff --git a/src/com/cyngn/theme/chooser/MyThemeFragment.java b/src/com/cyngn/theme/chooser/MyThemeFragment.java
index fa9a64e..48c2a22 100644
--- a/src/com/cyngn/theme/chooser/MyThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/MyThemeFragment.java
@@ -168,6 +168,29 @@ public class MyThemeFragment extends ThemeFragment {
}
}
+ @Override
+ public void setCurrentTheme(Map<String, String> currentTheme) {
+ super.setCurrentTheme(currentTheme);
+ mSelectedComponentsMap.clear();
+ for (String key : currentTheme.keySet()) {
+ mSelectedComponentsMap.put(key, currentTheme.get(key));
+ }
+ }
+
+ @Override
+ public boolean componentsChanged() {
+ // If an external wallpaper/ls are set then something changed!
+ if (mExternalWallpaperUri != null || mExternalLockscreenUri != null) return true;
+
+ for (String key : mSelectedComponentsMap.keySet()) {
+ String current = mCurrentTheme.get(key);
+ if (current == null || !current.equals(mSelectedComponentsMap.get(key))) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private BroadcastReceiver mWallpaperChangeReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
diff --git a/src/com/cyngn/theme/chooser/ThemeFragment.java b/src/com/cyngn/theme/chooser/ThemeFragment.java
index d7f57e4..32b9193 100644
--- a/src/com/cyngn/theme/chooser/ThemeFragment.java
+++ b/src/com/cyngn/theme/chooser/ThemeFragment.java
@@ -1928,7 +1928,8 @@ public class ThemeFragment extends Fragment implements LoaderManager.LoaderCallb
}
mActiveCardId = v.getId();
String component = mCardIdsToComponentTypes.get(mActiveCardId);
- getChooserActivity().showComponentSelector(component, v);
+ getChooserActivity().showComponentSelector(component,
+ mSelectedComponentsMap.get(component), v);
fadeOutNonSelectedCards(mActiveCardId);
stopMediaPlayers();
}