Loading res/layout/manage_applications.xml +19 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,23 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@+id/loading_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" android:gravity="center"> <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/settings_safetylegal_activity_loading" android:paddingTop="4dip" android:singleLine="true" /> </LinearLayout> </FrameLayout> No newline at end of file src/com/android/settings/applications/ManageApplications.java +28 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.animation.AnimationUtils; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; Loading Loading @@ -92,6 +93,8 @@ public class ManageApplications extends TabActivity implements private String mCurrentPkgName; private View mLoadingContainer; private View mListContainer; // ListView used to display list Loading @@ -107,6 +110,12 @@ public class ManageApplications extends TabActivity implements private boolean mActivityResumed; private Object mNonConfigInstance; final Runnable mRunningProcessesAvail = new Runnable() { public void run() { handleRunningProcessesAvail(); } }; // View Holder used when displaying views static class AppViewHolder { ApplicationsState.AppEntry entry; Loading Loading @@ -405,6 +414,7 @@ public class ManageApplications extends TabActivity implements // initialize the inflater mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); mRootView = mInflater.inflate(R.layout.manage_applications, null); mLoadingContainer = mRootView.findViewById(R.id.loading_container); mListContainer = mRootView.findViewById(R.id.list_container); // Create adapter and list view here ListView lv = (ListView) mListContainer.findViewById(android.R.id.list); Loading Loading @@ -561,19 +571,35 @@ public class ManageApplications extends TabActivity implements mRunningProcessesView.doCreate(null, mNonConfigInstance); mCreatedRunning = true; } boolean haveData = true; if (mActivityResumed && !mResumedRunning) { mRunningProcessesView.doResume(); haveData = mRunningProcessesView.doResume(mRunningProcessesAvail); mResumedRunning = true; } mApplicationsAdapter.pause(); if (mCurView != which) { if (haveData) { mRunningProcessesView.setVisibility(View.VISIBLE); } else { mLoadingContainer.setVisibility(View.VISIBLE); } mListContainer.setVisibility(View.GONE); } } mCurView = which; } void handleRunningProcessesAvail() { if (mCurView == VIEW_RUNNING) { mLoadingContainer.startAnimation(AnimationUtils.loadAnimation( this, android.R.anim.fade_out)); mRunningProcessesView.startAnimation(AnimationUtils.loadAnimation( this, android.R.anim.fade_in)); mRunningProcessesView.setVisibility(View.VISIBLE); mLoadingContainer.setVisibility(View.GONE); } } public void showCurrentTab() { String tabId = getTabHost().getCurrentTabTag(); int newOption; Loading src/com/android/settings/applications/RunningProcessesView.java +12 −1 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ public class RunningProcessesView extends FrameLayout RunningState mState; Runnable mDataAvail; StringBuilder mBuilder = new StringBuilder(128); RunningState.BaseItem mCurSelected; Loading Loading @@ -390,6 +392,11 @@ public class RunningProcessesView extends FrameLayout adapter.notifyDataSetChanged(); } if (mDataAvail != null) { mDataAvail.run(); mDataAvail = null; } // This is the amount of available memory until we start killing // background services. long availMem = readAvailMem() - SECONDARY_SERVER_MEM; Loading Loading @@ -475,15 +482,19 @@ public class RunningProcessesView extends FrameLayout public void doPause() { mState.pause(); mDataAvail = null; } public void doResume() { public boolean doResume(Runnable dataAvail) { mState.resume(this); if (mState.hasData()) { // If the state already has its data, then let's populate our // list right now to avoid flicker. refreshUi(true); return true; } mDataAvail = dataAvail; return false; } public Object doRetainNonConfigurationInstance() { Loading src/com/android/settings/fuelgauge/PowerUsageSummary.java +3 −7 Original line number Diff line number Diff line Loading @@ -392,16 +392,12 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { for (Map.Entry<String, ? extends BatteryStats.Uid.Wakelock> wakelockEntry : wakelockStats.entrySet()) { Uid.Wakelock wakelock = wakelockEntry.getValue(); BatteryStats.Timer timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_FULL); // Only care about partial wake locks since full wake locks // are canceled when the user turns the screen off. BatteryStats.Timer timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_PARTIAL); if (timer != null) { wakelockTime += timer.getTotalTimeLocked(uSecTime, which); } timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_PARTIAL); if (timer != null) { wakelockTime += timer.getTotalTimeLocked(uSecTime, which); } // Note: not considering window, since that is just the system // keeping the screen on while the app is running. } wakelockTime /= 1000; // convert to millis Loading Loading
res/layout/manage_applications.xml +19 −0 Original line number Diff line number Diff line Loading @@ -38,4 +38,23 @@ android:layout_width="match_parent" android:layout_height="match_parent" /> <LinearLayout android:id="@+id/loading_container" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:visibility="gone" android:gravity="center"> <ProgressBar style="?android:attr/progressBarStyleLarge" android:layout_width="wrap_content" android:layout_height="wrap_content" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:textAppearance="?android:attr/textAppearanceSmall" android:text="@string/settings_safetylegal_activity_loading" android:paddingTop="4dip" android:singleLine="true" /> </LinearLayout> </FrameLayout> No newline at end of file
src/com/android/settings/applications/ManageApplications.java +28 −2 Original line number Diff line number Diff line Loading @@ -33,6 +33,7 @@ import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.view.Window; import android.view.animation.AnimationUtils; import android.widget.AbsListView; import android.widget.AdapterView; import android.widget.BaseAdapter; Loading Loading @@ -92,6 +93,8 @@ public class ManageApplications extends TabActivity implements private String mCurrentPkgName; private View mLoadingContainer; private View mListContainer; // ListView used to display list Loading @@ -107,6 +110,12 @@ public class ManageApplications extends TabActivity implements private boolean mActivityResumed; private Object mNonConfigInstance; final Runnable mRunningProcessesAvail = new Runnable() { public void run() { handleRunningProcessesAvail(); } }; // View Holder used when displaying views static class AppViewHolder { ApplicationsState.AppEntry entry; Loading Loading @@ -405,6 +414,7 @@ public class ManageApplications extends TabActivity implements // initialize the inflater mInflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE); mRootView = mInflater.inflate(R.layout.manage_applications, null); mLoadingContainer = mRootView.findViewById(R.id.loading_container); mListContainer = mRootView.findViewById(R.id.list_container); // Create adapter and list view here ListView lv = (ListView) mListContainer.findViewById(android.R.id.list); Loading Loading @@ -561,19 +571,35 @@ public class ManageApplications extends TabActivity implements mRunningProcessesView.doCreate(null, mNonConfigInstance); mCreatedRunning = true; } boolean haveData = true; if (mActivityResumed && !mResumedRunning) { mRunningProcessesView.doResume(); haveData = mRunningProcessesView.doResume(mRunningProcessesAvail); mResumedRunning = true; } mApplicationsAdapter.pause(); if (mCurView != which) { if (haveData) { mRunningProcessesView.setVisibility(View.VISIBLE); } else { mLoadingContainer.setVisibility(View.VISIBLE); } mListContainer.setVisibility(View.GONE); } } mCurView = which; } void handleRunningProcessesAvail() { if (mCurView == VIEW_RUNNING) { mLoadingContainer.startAnimation(AnimationUtils.loadAnimation( this, android.R.anim.fade_out)); mRunningProcessesView.startAnimation(AnimationUtils.loadAnimation( this, android.R.anim.fade_in)); mRunningProcessesView.setVisibility(View.VISIBLE); mLoadingContainer.setVisibility(View.GONE); } } public void showCurrentTab() { String tabId = getTabHost().getCurrentTabTag(); int newOption; Loading
src/com/android/settings/applications/RunningProcessesView.java +12 −1 Original line number Diff line number Diff line Loading @@ -64,6 +64,8 @@ public class RunningProcessesView extends FrameLayout RunningState mState; Runnable mDataAvail; StringBuilder mBuilder = new StringBuilder(128); RunningState.BaseItem mCurSelected; Loading Loading @@ -390,6 +392,11 @@ public class RunningProcessesView extends FrameLayout adapter.notifyDataSetChanged(); } if (mDataAvail != null) { mDataAvail.run(); mDataAvail = null; } // This is the amount of available memory until we start killing // background services. long availMem = readAvailMem() - SECONDARY_SERVER_MEM; Loading Loading @@ -475,15 +482,19 @@ public class RunningProcessesView extends FrameLayout public void doPause() { mState.pause(); mDataAvail = null; } public void doResume() { public boolean doResume(Runnable dataAvail) { mState.resume(this); if (mState.hasData()) { // If the state already has its data, then let's populate our // list right now to avoid flicker. refreshUi(true); return true; } mDataAvail = dataAvail; return false; } public Object doRetainNonConfigurationInstance() { Loading
src/com/android/settings/fuelgauge/PowerUsageSummary.java +3 −7 Original line number Diff line number Diff line Loading @@ -392,16 +392,12 @@ public class PowerUsageSummary extends PreferenceActivity implements Runnable { for (Map.Entry<String, ? extends BatteryStats.Uid.Wakelock> wakelockEntry : wakelockStats.entrySet()) { Uid.Wakelock wakelock = wakelockEntry.getValue(); BatteryStats.Timer timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_FULL); // Only care about partial wake locks since full wake locks // are canceled when the user turns the screen off. BatteryStats.Timer timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_PARTIAL); if (timer != null) { wakelockTime += timer.getTotalTimeLocked(uSecTime, which); } timer = wakelock.getWakeTime(BatteryStats.WAKE_TYPE_PARTIAL); if (timer != null) { wakelockTime += timer.getTotalTimeLocked(uSecTime, which); } // Note: not considering window, since that is just the system // keeping the screen on while the app is running. } wakelockTime /= 1000; // convert to millis Loading