17ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes/* 27ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * Copyright (C) 2016 The Android Open Source Project 37ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * 47ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * Licensed under the Apache License, Version 2.0 (the "License"); 57ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * you may not use this file except in compliance with the License. 67ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * You may obtain a copy of the License at 77ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * 87ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * http://www.apache.org/licenses/LICENSE-2.0 97ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * 107ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * Unless required by applicable law or agreed to in writing, software 117ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * distributed under the License is distributed on an "AS IS" BASIS, 127ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 137ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * See the License for the specific language governing permissions and 147ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * limitations under the License. 157ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes */ 167ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 17ac5fe7c617c66850fff75a9fce9979c6e5674b0fAurimas Liutikaspackage androidx.appcompat.custom; 187ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 197ddd1ffee15f045e17a1da78808be97b64772e4bChris Banesimport android.content.Context; 207ddd1ffee15f045e17a1da78808be97b64772e4bChris Banesimport android.content.ContextWrapper; 217ddd1ffee15f045e17a1da78808be97b64772e4bChris Banesimport android.content.res.Resources; 227ddd1ffee15f045e17a1da78808be97b64772e4bChris Banesimport android.util.AttributeSet; 237ddd1ffee15f045e17a1da78808be97b64772e4bChris Banesimport android.widget.FrameLayout; 247ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 257ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes/** 267ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes * An AppCompatImageView which manually wraps its Context 277ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes */ 287ddd1ffee15f045e17a1da78808be97b64772e4bChris Banespublic class ContextWrapperFrameLayout extends FrameLayout { 297ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 307ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public ContextWrapperFrameLayout(Context context) { 317ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes super(new CustomContextWrapper(context)); 327ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 337ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 347ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public ContextWrapperFrameLayout(Context context, AttributeSet attrs) { 357ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes super(new CustomContextWrapper(context), attrs); 367ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 377ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 387ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public static class CustomContextWrapper extends ContextWrapper { 397ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes private final Resources mResources; 407ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 417ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public CustomContextWrapper(Context base) { 427ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes super(base); 437ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes mResources = new CustomResources(base.getResources()); 447ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 457ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 467ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes @Override 477ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public Resources getResources() { 487ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes return mResources; 497ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 507ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 517ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes 527ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public static class CustomResources extends Resources { 537ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes public CustomResources(Resources res) { 547ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes super(res.getAssets(), res.getDisplayMetrics(), res.getConfiguration()); 557ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 567ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes } 577ddd1ffee15f045e17a1da78808be97b64772e4bChris Banes} 58