1ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee/*
2ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * Copyright (C) 2014 The Android Open Source Project
3ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee *
4ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * Licensed under the Apache License, Version 2.0 (the "License");
5ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * you may not use this file except in compliance with the License.
6ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * You may obtain a copy of the License at
7ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee *
8ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee *      http://www.apache.org/licenses/LICENSE-2.0
9ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee *
10ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * Unless required by applicable law or agreed to in writing, software
11ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * distributed under the License is distributed on an "AS IS" BASIS,
12ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * See the License for the specific language governing permissions and
14ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee * limitations under the License.
15ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee */
16ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee
17ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Leepackage com.android.providers.tv;
18ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee
199c7110178fd390ed520e83522ecc5b54835e0778Conrad Chenimport android.content.ContentValues;
209c7110178fd390ed520e83522ecc5b54835e0778Conrad Chenimport android.database.sqlite.SQLiteDatabase;
219c7110178fd390ed520e83522ecc5b54835e0778Conrad Chenimport android.media.tv.TvContract;
229c7110178fd390ed520e83522ecc5b54835e0778Conrad Chenimport android.net.Uri;
239c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen
24ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Leeclass TvProviderForTesting extends TvProvider {
259c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen    private static final String FAKE_SESSION_TOKEN = "TvProviderForTesting";
269c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen
271b63db50e1bb304d7d6d77d3136ee066d14f91f9Conrad Chen    String callingPackage;
281b63db50e1bb304d7d6d77d3136ee066d14f91f9Conrad Chen
29ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee    @Override
30ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee    void scheduleEpgDataCleanup() {}
31ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee
32ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee    @Override
33ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee    String getCallingPackage_() {
341b63db50e1bb304d7d6d77d3136ee066d14f91f9Conrad Chen        if (callingPackage != null) {
351b63db50e1bb304d7d6d77d3136ee066d14f91f9Conrad Chen            return callingPackage;
361b63db50e1bb304d7d6d77d3136ee066d14f91f9Conrad Chen        }
37ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee        return getContext().getPackageName();
38ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee    }
393cc1a853b3dd678078c17a5f70c2ceba0f1d5cd4Dongwon Kang
403cc1a853b3dd678078c17a5f70c2ceba0f1d5cd4Dongwon Kang    void setTransientRowHelper(TransientRowHelper helper) {
413cc1a853b3dd678078c17a5f70c2ceba0f1d5cd4Dongwon Kang        mTransientRowHelper = helper;
423cc1a853b3dd678078c17a5f70c2ceba0f1d5cd4Dongwon Kang    }
439c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen
449c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen    // This method is a bypass for testing to avoid async'ly updating restriction of TvProvider
459c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen    Uri insertWatchedProgramSync(ContentValues values) {
469c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        values.put(WATCHED_PROGRAMS_COLUMN_CONSOLIDATED, 1);
479c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        values.put(TvContract.WatchedPrograms.COLUMN_INTERNAL_SESSION_TOKEN, FAKE_SESSION_TOKEN);
489c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        DatabaseHelper helper = DatabaseHelper.getInstance(getContext());
499c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        SQLiteDatabase db = helper.getWritableDatabase();
509c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        long rowId = db.insert(WATCHED_PROGRAMS_TABLE, null, values);
519c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen        return TvContract.buildWatchedProgramUri(rowId);
529c7110178fd390ed520e83522ecc5b54835e0778Conrad Chen    }
53ac117ad70762672243573f9c8a5ea3220c4884bfJi-Hwan Lee}
54