1 /*
2  * Copyright (C) 2012 The Android Open Source Project
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License"); you may not
5  * use this file except in compliance with the License. You may obtain a copy of
6  * the License at
7  *
8  * http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13  * License for the specific language governing permissions and limitations under
14  * the License.
15  */
16 
17 package com.android.inputmethod.dictionarypack;
18 
19 import android.app.Activity;
20 import android.content.Intent;
21 import android.os.Bundle;
22 import android.text.Html;
23 import android.view.View;
24 import android.widget.Button;
25 import android.widget.TextView;
26 
27 import com.android.inputmethod.latin.R;
28 
29 import java.util.Locale;
30 
31 /**
32  * This implements the dialog for asking the user whether it's okay to download dictionaries over
33  * a metered connection or not (e.g. their mobile data plan).
34  */
35 public final class DownloadOverMeteredDialog extends Activity {
36     final public static String CLIENT_ID_KEY = "client_id";
37     final public static String WORDLIST_TO_DOWNLOAD_KEY = "wordlist_to_download";
38     final public static String SIZE_KEY = "size";
39     final public static String LOCALE_KEY = "locale";
40     private String mClientId;
41     private String mWordListToDownload;
42 
43     @Override
onCreate(final Bundle savedInstanceState)44     protected void onCreate(final Bundle savedInstanceState) {
45         super.onCreate(savedInstanceState);
46         final Intent intent = getIntent();
47         mClientId = intent.getStringExtra(CLIENT_ID_KEY);
48         mWordListToDownload = intent.getStringExtra(WORDLIST_TO_DOWNLOAD_KEY);
49         final String localeString = intent.getStringExtra(LOCALE_KEY);
50         final long size = intent.getIntExtra(SIZE_KEY, 0);
51         setContentView(R.layout.download_over_metered);
52         setTexts(localeString, size);
53     }
54 
setTexts(final String localeString, final long size)55     private void setTexts(final String localeString, final long size) {
56         final String promptFormat = getString(R.string.should_download_over_metered_prompt);
57         final String allowButtonFormat = getString(R.string.download_over_metered);
58         final Locale locale = LocaleUtils.constructLocaleFromString(localeString);
59         final String language = (null == locale ? "" : locale.getDisplayLanguage());
60         final TextView prompt = (TextView)findViewById(R.id.download_over_metered_prompt);
61         prompt.setText(Html.fromHtml(String.format(promptFormat, language)));
62         final Button allowButton = (Button)findViewById(R.id.allow_button);
63         allowButton.setText(String.format(allowButtonFormat, ((float)size)/(1024*1024)));
64     }
65 
onClickDeny(final View v)66     public void onClickDeny(final View v) {
67         UpdateHandler.setDownloadOverMeteredSetting(this, false);
68         finish();
69     }
70 
onClickAllow(final View v)71     public void onClickAllow(final View v) {
72         UpdateHandler.setDownloadOverMeteredSetting(this, true);
73         UpdateHandler.installIfNeverRequested(this, mClientId, mWordListToDownload,
74                 false /* mayPrompt */);
75         finish();
76     }
77 }
78