1f021758934b35e3b842c6799344531d7ea2969daChris Wren/*
2f021758934b35e3b842c6799344531d7ea2969daChris Wren * Copyright (C) 2012 The Android Open Source Project
3f021758934b35e3b842c6799344531d7ea2969daChris Wren *
4f021758934b35e3b842c6799344531d7ea2969daChris Wren * Licensed under the Apache License, Version 2.0 (the "License");
5f021758934b35e3b842c6799344531d7ea2969daChris Wren * you may not use this file except in compliance with the License.
6f021758934b35e3b842c6799344531d7ea2969daChris Wren * You may obtain a copy of the License at
7f021758934b35e3b842c6799344531d7ea2969daChris Wren *
8f021758934b35e3b842c6799344531d7ea2969daChris Wren *      http://www.apache.org/licenses/LICENSE-2.0
9f021758934b35e3b842c6799344531d7ea2969daChris Wren *
10f021758934b35e3b842c6799344531d7ea2969daChris Wren * Unless required by applicable law or agreed to in writing, software
11f021758934b35e3b842c6799344531d7ea2969daChris Wren * distributed under the License is distributed on an "AS IS" BASIS,
12f021758934b35e3b842c6799344531d7ea2969daChris Wren * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f021758934b35e3b842c6799344531d7ea2969daChris Wren * See the License for the specific language governing permissions and
14f021758934b35e3b842c6799344531d7ea2969daChris Wren * limitations under the License.
15f021758934b35e3b842c6799344531d7ea2969daChris Wren */
16f021758934b35e3b842c6799344531d7ea2969daChris Wren
17f021758934b35e3b842c6799344531d7ea2969daChris Wrenpackage android.support.v4.app;
18f021758934b35e3b842c6799344531d7ea2969daChris Wren
19f021758934b35e3b842c6799344531d7ea2969daChris Wrenimport android.app.Notification;
20f021758934b35e3b842c6799344531d7ea2969daChris Wrenimport android.app.PendingIntent;
21f021758934b35e3b842c6799344531d7ea2969daChris Wrenimport android.content.Context;
22f021758934b35e3b842c6799344531d7ea2969daChris Wrenimport android.graphics.Bitmap;
23f021758934b35e3b842c6799344531d7ea2969daChris Wrenimport android.widget.RemoteViews;
24f021758934b35e3b842c6799344531d7ea2969daChris Wren
25f021758934b35e3b842c6799344531d7ea2969daChris Wrenclass NotificationCompatIceCreamSandwich {
2610d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi
2710d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi    public static class Builder implements NotificationBuilderWithBuilderAccessor {
2810d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi
2910d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        private Notification.Builder b;
3010d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi
3110d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        public Builder(Context context, Notification n, CharSequence contentTitle,
3210d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                CharSequence contentText, CharSequence contentInfo, RemoteViews tickerView,
3310d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                int number, PendingIntent contentIntent, PendingIntent fullScreenIntent,
3410d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                Bitmap largeIcon, int progressMax, int progress, boolean progressIndeterminate) {
3510d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi            b = new Notification.Builder(context)
3610d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setWhen(n.when)
3710d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setSmallIcon(n.icon, n.iconLevel)
3810d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setContent(n.contentView)
3910d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setTicker(n.tickerText, tickerView)
4010d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setSound(n.sound, n.audioStreamType)
4110d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setVibrate(n.vibrate)
4210d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setLights(n.ledARGB, n.ledOnMS, n.ledOffMS)
4310d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setOngoing((n.flags & Notification.FLAG_ONGOING_EVENT) != 0)
4410d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setOnlyAlertOnce((n.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0)
4510d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setAutoCancel((n.flags & Notification.FLAG_AUTO_CANCEL) != 0)
4610d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setDefaults(n.defaults)
4710d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setContentTitle(contentTitle)
4810d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setContentText(contentText)
4910d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setContentInfo(contentInfo)
5010d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setContentIntent(contentIntent)
5110d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setDeleteIntent(n.deleteIntent)
5210d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setFullScreenIntent(fullScreenIntent,
5310d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                            (n.flags & Notification.FLAG_HIGH_PRIORITY) != 0)
5410d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setLargeIcon(largeIcon)
5510d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setNumber(number)
5610d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi                    .setProgress(progressMax, progress, progressIndeterminate);
5710d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        }
5810d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi
5910d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        @Override
6010d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        public Notification.Builder getBuilder() {
6110d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi            return b;
6210d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        }
6310d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi
6410d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        @Override
6510d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        public Notification build() {
6610d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi            return b.getNotification();
6710d7d250bc41b21059a90095e8b693c9e7bc3bc3Jorim Jaggi        }
68f021758934b35e3b842c6799344531d7ea2969daChris Wren    }
69f021758934b35e3b842c6799344531d7ea2969daChris Wren}
70