1b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu/* 2b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * Copyright (C) 2012 The Android Open Source Project 3b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * 4b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * Licensed under the Apache License, Version 2.0 (the "License"); 5b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * you may not use this file except in compliance with the License. 6b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * You may obtain a copy of the License at 7b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * 8b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * http://www.apache.org/licenses/LICENSE-2.0 9b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * 10b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * Unless required by applicable law or agreed to in writing, software 11b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * distributed under the License is distributed on an "AS IS" BASIS, 12b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * See the License for the specific language governing permissions and 14b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu * limitations under the License. 15b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu */ 16b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu 17b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsupackage com.android.launcher2; 18b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu 19b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsuimport android.content.BroadcastReceiver; 20b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsuimport android.content.Context; 21b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsuimport android.content.Intent; 225524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsuimport android.text.TextUtils; 235524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsuimport android.util.Log; 24b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu 25b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsupublic class PreloadReceiver extends BroadcastReceiver { 265524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu private static final String TAG = "Launcher.PreloadReceiver"; 275524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu private static final boolean LOGD = false; 285524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu 295524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu public static final String EXTRA_WORKSPACE_NAME = 305524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu "com.android.launcher.action.EXTRA_WORKSPACE_NAME"; 31f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk public static final String EXTRA_OVERRIDE_PREVIOUS = 32f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk "com.android.launcher.action.EXTRA_OVERRIDE_PREVIOUS"; 335524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu 34b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu @Override 35b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu public void onReceive(Context context, Intent intent) { 36b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu final LauncherApplication app = (LauncherApplication) context.getApplicationContext(); 37b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu final LauncherProvider provider = app.getLauncherProvider(); 38b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu if (provider != null) { 395524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu String name = intent.getStringExtra(EXTRA_WORKSPACE_NAME); 405524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu final int workspaceResId = !TextUtils.isEmpty(name) 415524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu ? context.getResources().getIdentifier(name, "xml", "com.android.launcher") : 0; 42f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk 43f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk final boolean overridePrevious = 44f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk intent.getBooleanExtra(EXTRA_OVERRIDE_PREVIOUS, false); 455524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu if (LOGD) { 465524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu Log.d(TAG, "workspace name: " + name + " id: " + workspaceResId); 475524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu } 48b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu new Thread(new Runnable() { 495524b4957fc7c1c858037327429411efdb8fe7d6Brian Muramatsu @Override 50b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu public void run() { 51f627f9cd1fb376c206c8a68d052fc36ebc0aaa1dJason Monk provider.loadDefaultFavoritesIfNecessary(workspaceResId, overridePrevious); 52b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu } 53b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu }).start(); 54b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu } 55b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu } 56b6a4d983b8ddec80033f371c71270beea3ad912aBrian Muramatsu} 57