diff --git a/src/com/android/launcher3/QsbContainerView.java b/src/com/android/launcher3/QsbContainerView.java
index f931aba..7d939a0 100644
--- a/src/com/android/launcher3/QsbContainerView.java
+++ b/src/com/android/launcher3/QsbContainerView.java
@@ -86,7 +86,7 @@
 
             IntentFilter filter = new IntentFilter(Launcher.ACTION_APPWIDGET_HOST_RESET);
             filter.addAction(SearchManager.INTENT_GLOBAL_SEARCH_ACTIVITY_CHANGED);
-            getContext().registerReceiver(mRebindReceiver, filter);
+            getActivity().registerReceiver(mRebindReceiver, filter);
         }
 
         private FrameLayout mWrapper;
@@ -98,7 +98,7 @@
             if (savedInstanceState != null) {
                 sSavedWidgetId = savedInstanceState.getInt(QSB_WIDGET_ID, -1);
             }
-            mWrapper = new FrameLayout(getContext());
+            mWrapper = new FrameLayout(getActivity());
             mWrapper.addView(createQsb(inflater, mWrapper));
             return mWrapper;
         }
@@ -190,7 +190,7 @@
                 if (resultCode == Activity.RESULT_OK) {
                     int widgetId = data.getIntExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
                             sSavedWidgetId);
-                    Utilities.getPrefs(getContext()).edit().putInt(QSB_WIDGET_ID, widgetId).apply();
+                    Utilities.getPrefs(getActivity()).edit().putInt(QSB_WIDGET_ID, widgetId).apply();
                     sSavedWidgetId = -1;
                     rebindFragment();
                 } else if (sSavedWidgetId != -1) {
@@ -210,7 +210,7 @@
 
         @Override
         public void onDestroy() {
-            getContext().unregisterReceiver(mRebindReceiver);
+            getActivity().unregisterReceiver(mRebindReceiver);
             super.onDestroy();
         }
 
diff --git a/src/com/android/launcher3/SettingsActivity.java b/src/com/android/launcher3/SettingsActivity.java
index 5ef6dd5..cedeb39 100644
--- a/src/com/android/launcher3/SettingsActivity.java
+++ b/src/com/android/launcher3/SettingsActivity.java
@@ -59,7 +59,7 @@
                 // Launcher supports rotation by default. No need to show this setting.
                 getPreferenceScreen().removePreference(rotationPref);
             } else {
-                ContentResolver resolver = getContext().getContentResolver();
+                ContentResolver resolver = getActivity().getContentResolver();
                 mRotationLockObserver = new SystemDisplayRotationLockObserver(rotationPref, resolver);
 
                 // Register a content observer to listen for system setting changes while
@@ -70,14 +70,14 @@
 
                 // Initialize the UI once
                 mRotationLockObserver.onChange(true);
-                rotationPref.setDefaultValue(Utilities.getAllowRotationDefaultValue(getContext()));
+                rotationPref.setDefaultValue(Utilities.getAllowRotationDefaultValue(getActivity()));
             }
         }
 
         @Override
         public void onDestroy() {
             if (mRotationLockObserver != null) {
-                getContext().getContentResolver().unregisterContentObserver(mRotationLockObserver);
+                getActivity().getContentResolver().unregisterContentObserver(mRotationLockObserver);
                 mRotationLockObserver = null;
             }
             super.onDestroy();
