OSDN Git Service

Move DreamBackend to SettingsLib
authorTony Mantler <nicoya@google.com>
Fri, 9 Oct 2015 21:37:16 +0000 (14:37 -0700)
committerTony Mantler <nicoya@google.com>
Fri, 9 Oct 2015 21:37:16 +0000 (14:37 -0700)
Change-Id: Ia3f3f68e7182c74f4db6e00635fa0c928032a8fc

src/com/android/settings/DreamBackend.java [deleted file]
src/com/android/settings/DreamSettings.java

diff --git a/src/com/android/settings/DreamBackend.java b/src/com/android/settings/DreamBackend.java
deleted file mode 100644 (file)
index 1522705..0000000
+++ /dev/null
@@ -1,310 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- *      http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings;
-
-import static android.provider.Settings.Secure.SCREENSAVER_ACTIVATE_ON_DOCK;
-import static android.provider.Settings.Secure.SCREENSAVER_ACTIVATE_ON_SLEEP;
-import static android.provider.Settings.Secure.SCREENSAVER_ENABLED;
-
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.pm.PackageManager.NameNotFoundException;
-import android.content.pm.ServiceInfo;
-import android.content.res.Resources;
-import android.content.res.TypedArray;
-import android.content.res.XmlResourceParser;
-import android.graphics.drawable.Drawable;
-import android.os.RemoteException;
-import android.os.ServiceManager;
-import android.provider.Settings;
-import android.service.dreams.DreamService;
-import android.service.dreams.IDreamManager;
-import android.util.AttributeSet;
-import android.util.Log;
-import android.util.Xml;
-
-import org.xmlpull.v1.XmlPullParser;
-import org.xmlpull.v1.XmlPullParserException;
-
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.Collections;
-import java.util.Comparator;
-import java.util.List;
-
-public class DreamBackend {
-    private static final String TAG = DreamSettings.class.getSimpleName() + ".Backend";
-
-    public static class DreamInfo {
-        CharSequence caption;
-        Drawable icon;
-        boolean isActive;
-        public ComponentName componentName;
-        public ComponentName settingsComponentName;
-
-        @Override
-        public String toString() {
-            StringBuilder sb = new StringBuilder(DreamInfo.class.getSimpleName());
-            sb.append('[').append(caption);
-            if (isActive)
-                sb.append(",active");
-            sb.append(',').append(componentName);
-            if (settingsComponentName != null)
-                sb.append("settings=").append(settingsComponentName);
-            return sb.append(']').toString();
-        }
-    }
-
-    private final Context mContext;
-    private final IDreamManager mDreamManager;
-    private final DreamInfoComparator mComparator;
-    private final boolean mDreamsEnabledByDefault;
-    private final boolean mDreamsActivatedOnSleepByDefault;
-    private final boolean mDreamsActivatedOnDockByDefault;
-
-    public DreamBackend(Context context) {
-        mContext = context;
-        mDreamManager = IDreamManager.Stub.asInterface(
-                ServiceManager.getService(DreamService.DREAM_SERVICE));
-        mComparator = new DreamInfoComparator(getDefaultDream());
-        mDreamsEnabledByDefault = context.getResources()
-                .getBoolean(com.android.internal.R.bool.config_dreamsEnabledByDefault);
-        mDreamsActivatedOnSleepByDefault = context.getResources()
-                .getBoolean(com.android.internal.R.bool.config_dreamsActivatedOnSleepByDefault);
-        mDreamsActivatedOnDockByDefault = context.getResources()
-                .getBoolean(com.android.internal.R.bool.config_dreamsActivatedOnDockByDefault);
-    }
-
-    public List<DreamInfo> getDreamInfos() {
-        logd("getDreamInfos()");
-        ComponentName activeDream = getActiveDream();
-        PackageManager pm = mContext.getPackageManager();
-        Intent dreamIntent = new Intent(DreamService.SERVICE_INTERFACE);
-        List<ResolveInfo> resolveInfos = pm.queryIntentServices(dreamIntent,
-                PackageManager.GET_META_DATA);
-        List<DreamInfo> dreamInfos = new ArrayList<DreamInfo>(resolveInfos.size());
-        for (ResolveInfo resolveInfo : resolveInfos) {
-            if (resolveInfo.serviceInfo == null)
-                continue;
-            DreamInfo dreamInfo = new DreamInfo();
-            dreamInfo.caption = resolveInfo.loadLabel(pm);
-            dreamInfo.icon = resolveInfo.loadIcon(pm);
-            dreamInfo.componentName = getDreamComponentName(resolveInfo);
-            dreamInfo.isActive = dreamInfo.componentName.equals(activeDream);
-            dreamInfo.settingsComponentName = getSettingsComponentName(pm, resolveInfo);
-            dreamInfos.add(dreamInfo);
-        }
-        Collections.sort(dreamInfos, mComparator);
-        return dreamInfos;
-    }
-
-    public ComponentName getDefaultDream() {
-        if (mDreamManager == null)
-            return null;
-        try {
-            return mDreamManager.getDefaultDreamComponent();
-        } catch (RemoteException e) {
-            Log.w(TAG, "Failed to get default dream", e);
-            return null;
-        }
-    }
-
-    public CharSequence getActiveDreamName() {
-        ComponentName cn = getActiveDream();
-        if (cn != null) {
-            PackageManager pm = mContext.getPackageManager();
-            try {
-                ServiceInfo ri = pm.getServiceInfo(cn, 0);
-                if (ri != null) {
-                    return ri.loadLabel(pm);
-                }
-            } catch (PackageManager.NameNotFoundException exc) {
-                return null; // uninstalled?
-            }
-        }
-        return null;
-    }
-
-    public boolean isEnabled() {
-        return getBoolean(SCREENSAVER_ENABLED, mDreamsEnabledByDefault);
-    }
-
-    public void setEnabled(boolean value) {
-        logd("setEnabled(%s)", value);
-        setBoolean(SCREENSAVER_ENABLED, value);
-    }
-
-    public boolean isActivatedOnDock() {
-        return getBoolean(SCREENSAVER_ACTIVATE_ON_DOCK, mDreamsActivatedOnDockByDefault);
-    }
-
-    public void setActivatedOnDock(boolean value) {
-        logd("setActivatedOnDock(%s)", value);
-        setBoolean(SCREENSAVER_ACTIVATE_ON_DOCK, value);
-    }
-
-    public boolean isActivatedOnSleep() {
-        return getBoolean(SCREENSAVER_ACTIVATE_ON_SLEEP, mDreamsActivatedOnSleepByDefault);
-    }
-
-    public void setActivatedOnSleep(boolean value) {
-        logd("setActivatedOnSleep(%s)", value);
-        setBoolean(SCREENSAVER_ACTIVATE_ON_SLEEP, value);
-    }
-
-    private boolean getBoolean(String key, boolean def) {
-        return Settings.Secure.getInt(mContext.getContentResolver(), key, def ? 1 : 0) == 1;
-    }
-
-    private void setBoolean(String key, boolean value) {
-        Settings.Secure.putInt(mContext.getContentResolver(), key, value ? 1 : 0);
-    }
-
-    public void setActiveDream(ComponentName dream) {
-        logd("setActiveDream(%s)", dream);
-        if (mDreamManager == null)
-            return;
-        try {
-            ComponentName[] dreams = { dream };
-            mDreamManager.setDreamComponents(dream == null ? null : dreams);
-        } catch (RemoteException e) {
-            Log.w(TAG, "Failed to set active dream to " + dream, e);
-        }
-    }
-
-    public ComponentName getActiveDream() {
-        if (mDreamManager == null)
-            return null;
-        try {
-            ComponentName[] dreams = mDreamManager.getDreamComponents();
-            return dreams != null && dreams.length > 0 ? dreams[0] : null;
-        } catch (RemoteException e) {
-            Log.w(TAG, "Failed to get active dream", e);
-            return null;
-        }
-    }
-
-    public void launchSettings(DreamInfo dreamInfo) {
-        logd("launchSettings(%s)", dreamInfo);
-        if (dreamInfo == null || dreamInfo.settingsComponentName == null)
-            return;
-        mContext.startActivity(new Intent().setComponent(dreamInfo.settingsComponentName));
-    }
-
-    public void preview(DreamInfo dreamInfo) {
-        logd("preview(%s)", dreamInfo);
-        if (mDreamManager == null || dreamInfo == null || dreamInfo.componentName == null)
-            return;
-        try {
-            mDreamManager.testDream(dreamInfo.componentName);
-        } catch (RemoteException e) {
-            Log.w(TAG, "Failed to preview " + dreamInfo, e);
-        }
-    }
-
-    public void startDreaming() {
-        logd("startDreaming()");
-        if (mDreamManager == null)
-            return;
-        try {
-            mDreamManager.dream();
-        } catch (RemoteException e) {
-            Log.w(TAG, "Failed to dream", e);
-        }
-    }
-
-    private static ComponentName getDreamComponentName(ResolveInfo resolveInfo) {
-        if (resolveInfo == null || resolveInfo.serviceInfo == null)
-            return null;
-        return new ComponentName(resolveInfo.serviceInfo.packageName, resolveInfo.serviceInfo.name);
-    }
-
-    private static ComponentName getSettingsComponentName(PackageManager pm, ResolveInfo resolveInfo) {
-        if (resolveInfo == null
-                || resolveInfo.serviceInfo == null
-                || resolveInfo.serviceInfo.metaData == null)
-            return null;
-        String cn = null;
-        XmlResourceParser parser = null;
-        Exception caughtException = null;
-        try {
-            parser = resolveInfo.serviceInfo.loadXmlMetaData(pm, DreamService.DREAM_META_DATA);
-            if (parser == null) {
-                Log.w(TAG, "No " + DreamService.DREAM_META_DATA + " meta-data");
-                return null;
-            }
-            Resources res = pm.getResourcesForApplication(resolveInfo.serviceInfo.applicationInfo);
-            AttributeSet attrs = Xml.asAttributeSet(parser);
-            int type;
-            while ((type=parser.next()) != XmlPullParser.END_DOCUMENT
-                    && type != XmlPullParser.START_TAG) {
-            }
-            String nodeName = parser.getName();
-            if (!"dream".equals(nodeName)) {
-                Log.w(TAG, "Meta-data does not start with dream tag");
-                return null;
-            }
-            TypedArray sa = res.obtainAttributes(attrs, com.android.internal.R.styleable.Dream);
-            cn = sa.getString(com.android.internal.R.styleable.Dream_settingsActivity);
-            sa.recycle();
-        } catch (NameNotFoundException e) {
-            caughtException = e;
-        } catch (IOException e) {
-            caughtException = e;
-        } catch (XmlPullParserException e) {
-            caughtException = e;
-        } finally {
-            if (parser != null) parser.close();
-        }
-        if (caughtException != null) {
-            Log.w(TAG, "Error parsing : " + resolveInfo.serviceInfo.packageName, caughtException);
-            return null;
-        }
-        if (cn != null && cn.indexOf('/') < 0) {
-            cn = resolveInfo.serviceInfo.packageName + "/" + cn;
-        }
-        return cn == null ? null : ComponentName.unflattenFromString(cn);
-    }
-
-    private static void logd(String msg, Object... args) {
-        if (DreamSettings.DEBUG)
-            Log.d(TAG, args == null || args.length == 0 ? msg : String.format(msg, args));
-    }
-
-    private static class DreamInfoComparator implements Comparator<DreamInfo> {
-        private final ComponentName mDefaultDream;
-
-        public DreamInfoComparator(ComponentName defaultDream) {
-            mDefaultDream = defaultDream;
-        }
-
-        @Override
-        public int compare(DreamInfo lhs, DreamInfo rhs) {
-            return sortKey(lhs).compareTo(sortKey(rhs));
-        }
-
-        private String sortKey(DreamInfo di) {
-            StringBuilder sb = new StringBuilder();
-            sb.append(di.componentName.equals(mDefaultDream) ? '0' : '1');
-            sb.append(di.caption);
-            return sb.toString();
-        }
-    }
-}
index 8137cd4..05d4df4 100644 (file)
@@ -44,8 +44,8 @@ import android.widget.Switch;
 import android.widget.TextView;
 
 import com.android.internal.logging.MetricsLogger;
-import com.android.settings.DreamBackend.DreamInfo;
 import com.android.settings.widget.SwitchBar;
+import com.android.settingslib.dream.DreamBackend;
 
 import java.util.List;
 
@@ -271,7 +271,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
 
         mAdapter.clear();
         if (dreamsEnabled) {
-            List<DreamInfo> dreamInfos = mBackend.getDreamInfos();
+            List<DreamBackend.DreamInfo> dreamInfos = mBackend.getDreamInfos();
             mAdapter.addAll(dreamInfos);
         }
         if (mMenuItemsWhenEnabled != null)
@@ -285,7 +285,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
             Log.d(TAG, args == null || args.length == 0 ? msg : String.format(msg, args));
     }
 
-    private class DreamInfoAdapter extends ArrayAdapter<DreamInfo> {
+    private class DreamInfoAdapter extends ArrayAdapter<DreamBackend.DreamInfo> {
         private final LayoutInflater mInflater;
 
         public DreamInfoAdapter(Context context) {
@@ -295,7 +295,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
 
         @Override
         public View getView(int position, View convertView, ViewGroup parent) {
-            DreamInfo dreamInfo = getItem(position);
+            DreamBackend.DreamInfo dreamInfo = getItem(position);
             logd("getView(%s)", dreamInfo.caption);
             final View row = convertView != null ? convertView : createDreamInfoRow(parent);
             row.setTag(dreamInfo);
@@ -329,7 +329,7 @@ public class DreamSettings extends SettingsPreferenceFragment implements
             settingsButton.setOnClickListener(new OnClickListener(){
                 @Override
                 public void onClick(View v) {
-                    mBackend.launchSettings((DreamInfo) row.getTag());
+                    mBackend.launchSettings((DreamBackend.DreamInfo) row.getTag());
                 }});
 
             return row;
@@ -342,20 +342,20 @@ public class DreamSettings extends SettingsPreferenceFragment implements
                 @Override
                 public void onClick(View v) {
                     v.setPressed(true);
-                    activate((DreamInfo) row.getTag());
+                    activate((DreamBackend.DreamInfo) row.getTag());
                 }});
             return row;
         }
 
-        private DreamInfo getCurrentSelection() {
+        private DreamBackend.DreamInfo getCurrentSelection() {
             for (int i = 0; i < getCount(); i++) {
-                DreamInfo dreamInfo = getItem(i);
+                DreamBackend.DreamInfo dreamInfo = getItem(i);
                 if (dreamInfo.isActive)
                     return dreamInfo;
             }
             return null;
         }
-        private void activate(DreamInfo dreamInfo) {
+        private void activate(DreamBackend.DreamInfo dreamInfo) {
             if (dreamInfo.equals(getCurrentSelection()))
                 return;
             for (int i = 0; i < getCount(); i++) {