diff --git a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
index 70f7383..bcc55e3 100644
--- a/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
+++ b/src/com/android/settings/localepicker/LocalePickerWithRegionActivity.java
@@ -17,11 +17,8 @@
 package com.android.settings.localepicker;
 
 import android.app.FragmentTransaction;
-import android.app.LocaleManager;
 import android.content.Intent;
 import android.os.Bundle;
-import android.os.LocaleList;
-import android.util.Log;
 import android.view.MenuItem;
 
 import com.android.internal.app.LocalePickerWithRegion;
@@ -34,7 +31,6 @@
         implements LocalePickerWithRegion.LocaleSelectedListener {
 
     private static final String PARENT_FRAGMENT_NAME = "localeListEditor";
-    private static final String TAG = "Calvin";
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -51,25 +47,6 @@
                 .commit();
     }
 
-    public void setAppDefaultLocale(String languageTag) {
-        if (languageTag.isEmpty()) {
-            Log.w(TAG, "[setAppDefaultLocale] No language tag.");
-            return;
-        }
-        setAppDefaultLocale(LocaleList.forLanguageTags(languageTag));
-    }
-
-    /** Sets per app's default language to system. */
-    public void setAppDefaultLocale(LocaleList localeList) {
-        LocaleManager mLocaleManager = getSystemService(LocaleManager.class);
-        if (mLocaleManager == null) {
-            Log.w(TAG, "LocaleManager is null, and cannot set the app locale up.");
-            return;
-        }
-        mLocaleManager.setApplicationLocales("com.android.vending", localeList);
-    }
-
-
     @Override
     public boolean onOptionsItemSelected(MenuItem item) {
         if (item.getItemId() == android.R.id.home) {
@@ -81,16 +58,9 @@
 
     @Override
     public void onLocaleSelected(LocaleStore.LocaleInfo locale) {
-        /*final Intent intent = new Intent();
+        final Intent intent = new Intent();
         intent.putExtra(LocaleListEditor.INTENT_LOCALE_KEY, locale);
-        setResult(RESULT_OK, intent);*/
-        if(locale != null) {
-            Log.d("Calvin", "onLocaleSelected " + locale.getLocale().toLanguageTag());
-            setAppDefaultLocale(locale.getLocale().toLanguageTag());
-        } else {
-            Log.d("Calvin", "onLocaleSelected null");
-            setAppDefaultLocale("");
-        }
+        setResult(RESULT_OK, intent);
         finish();
     }
 
