1a3f6a49ab37290eeeb8db0f41ec0f1cb74a68be7Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
22a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
32a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)// found in the LICENSE file.
42a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
52a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)package org.chromium.chrome.browser.profiles;
62a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
72a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)import org.chromium.base.CalledByNative;
82a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
92a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)/**
102a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) * Wrapper that allows passing a Profile reference around in the Java layer.
112a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles) */
122a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)public class Profile {
132a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
14f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    private long mNativeProfileAndroid;
152a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
16f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    private Profile(long nativeProfileAndroid) {
172a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        mNativeProfileAndroid = nativeProfileAndroid;
182a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
192a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
204e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    public static Profile getLastUsedProfile() {
214e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)        return (Profile) nativeGetLastUsedProfile();
224e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    }
234e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
241320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    public Profile getOriginalProfile() {
251320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        return (Profile) nativeGetOriginalProfile(mNativeProfileAndroid);
261320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
271320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
281320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    public Profile getOffTheRecordProfile() {
291320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        return (Profile) nativeGetOffTheRecordProfile(mNativeProfileAndroid);
301320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
311320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
321320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    public boolean hasOffTheRecordProfile() {
331320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        return nativeHasOffTheRecordProfile(mNativeProfileAndroid);
341320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
351320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
361320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    public boolean isOffTheRecord() {
371320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci        return nativeIsOffTheRecord(mNativeProfileAndroid);
381320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    }
391320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci
402a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    @CalledByNative
41f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    private static Profile create(long nativeProfileAndroid) {
422a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return new Profile(nativeProfileAndroid);
432a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
442a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
452a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    @CalledByNative
462a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    private void destroy() {
472a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        mNativeProfileAndroid = 0;
482a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
492a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)
502a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    @CalledByNative
51f2477e01787aa58f445919b809d89e252beef54fTorne (Richard Coles)    private long getNativePointer() {
522a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)        return mNativeProfileAndroid;
532a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)    }
544e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)
554e180b6a0b4720a9b8e9e959a882386f690f08ffTorne (Richard Coles)    private static native Object nativeGetLastUsedProfile();
561320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    private native Object nativeGetOriginalProfile(
571320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            long nativeProfileAndroid);
581320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    private native Object nativeGetOffTheRecordProfile(
591320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            long nativeProfileAndroid);
601320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    private native boolean nativeHasOffTheRecordProfile(
611320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            long nativeProfileAndroid);
621320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci    private native boolean nativeIsOffTheRecord(
631320f92c476a1ad9d19dba2a48c72b75566198e9Primiano Tucci            long nativeProfileAndroid);
642a99a7e74a7f215066514fe81d2bfa6639d9edddTorne (Richard Coles)}
65