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