FontFamily.java revision 15cf4757dc0099301662f8a26da561434cc07cfa
11a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien/*
21a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Copyright (C) 2014 The Android Open Source Project
31a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien *
41a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Licensed under the Apache License, Version 2.0 (the "License");
51a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * you may not use this file except in compliance with the License.
61a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * You may obtain a copy of the License at
71a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien *
81a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien *      http://www.apache.org/licenses/LICENSE-2.0
91a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien *
101a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * Unless required by applicable law or agreed to in writing, software
111a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * distributed under the License is distributed on an "AS IS" BASIS,
121a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
131a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * See the License for the specific language governing permissions and
141a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * limitations under the License.
151a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien */
161a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien
171a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienpackage android.graphics;
181a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien
191a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienimport java.io.File;
201a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien
211a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien/**
221a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * A family of typefaces with different styles.
231a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien *
241a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien * @hide
251a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien */
261a73f732f91e97c9c66b808c245ddda36a10e987Raph Levienpublic class FontFamily {
279a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien    /**
289a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien     * @hide
299a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien     */
301a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    public long mNativePtr;
319a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien
321a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    public FontFamily() {
331a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien        mNativePtr = nCreateFamily();
349a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien        mNativePtr = nCreateFamily();
359a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien        if (mNativePtr == 0) {
369a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien            throw new RuntimeException();
379a5b61ccc83303ceeec2059f58c1977af9faa9e3Raph Levien        }
381a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    }
3915cf4757dc0099301662f8a26da561434cc07cfaRaph Levien
4015cf4757dc0099301662f8a26da561434cc07cfaRaph Levien    @Override
4115cf4757dc0099301662f8a26da561434cc07cfaRaph Levien    protected void finalize() throws Throwable {
4215cf4757dc0099301662f8a26da561434cc07cfaRaph Levien        try {
4315cf4757dc0099301662f8a26da561434cc07cfaRaph Levien            nUnrefFamily(mNativePtr);
4415cf4757dc0099301662f8a26da561434cc07cfaRaph Levien        } finally {
4515cf4757dc0099301662f8a26da561434cc07cfaRaph Levien            super.finalize();
4615cf4757dc0099301662f8a26da561434cc07cfaRaph Levien        }
4715cf4757dc0099301662f8a26da561434cc07cfaRaph Levien    }
481a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien
491a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    public boolean addFont(File path) {
501a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien        return nAddFont(mNativePtr, path.getAbsolutePath());
511a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    }
521a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien
531a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    static native long nCreateFamily();
5415cf4757dc0099301662f8a26da561434cc07cfaRaph Levien    static native void nUnrefFamily(long nativePtr);
551a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien    static native boolean nAddFont(long nativeFamily, String path);
561a73f732f91e97c9c66b808c245ddda36a10e987Raph Levien}
57