📄 imringtonepreference.java
字号:
/** * Copyright (C) 2008 Esmertec AG. * Copyright (C) 2008 The Android Open Source Project * * Licensed under the Apache License, Version 2.0 (the "License"); you may not * use this file except in compliance with the License. You may obtain a copy * of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the * License for the specific language governing permissions and limitations * under the License. */package com.android.im.app;import com.android.im.service.ImServiceConstants;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.net.Uri;import android.preference.RingtonePreference;import android.provider.Im;import android.text.TextUtils;import android.util.AttributeSet;import android.util.Log;/** * RingtonePreference subclass to save/restore ringtone value from ImProvider. */public class ImRingtonePreference extends RingtonePreference { private long mProviderId; public ImRingtonePreference(Context context, AttributeSet attrs) { super(context, attrs); Intent intent = ((Activity)context).getIntent(); mProviderId = intent.getLongExtra(ImServiceConstants.EXTRA_INTENT_PROVIDER_ID, -1); if (mProviderId < 0) { Log.e(ImApp.LOG_TAG,"ImRingtonePreference intent requires provider id extra"); throw new RuntimeException("ImRingtonePreference must be created with an provider id"); } } @Override protected Uri onRestoreRingtone() { final Im.ProviderSettings.QueryMap settings = new Im.ProviderSettings.QueryMap( getContext().getContentResolver(), mProviderId, false /* keep updated */, null /* no handler */); String uri = settings.getRingtoneURI(); if (Log.isLoggable(ImApp.LOG_TAG, Log.VERBOSE)) { Log.v(ImApp.LOG_TAG, "onRestoreRingtone() finds uri=" + uri + " key=" + getKey()); } if (TextUtils.isEmpty(uri)) { return null; } Uri result = Uri.parse(uri); settings.close(); return result; } @Override protected void onSaveRingtone(Uri ringtoneUri) { final Im.ProviderSettings.QueryMap settings = new Im.ProviderSettings.QueryMap( getContext().getContentResolver(), mProviderId, false /* keep updated */, null /* no handler */); // When ringtoneUri is null, that means 'Silent' was chosen settings.setRingtoneURI(ringtoneUri == null ? "" : ringtoneUri.toString()); settings.close(); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -